// 返回数组是否与数组某一项的值有相同的字符串
function arrayHadArrayVal ({arrayMain, array}){
    // console.log('arrayMain', arrayMain)
    return arrayMain.some((val) => {
        return array.includes(val)
    })
}

// 返回数组是否包含某值
function checkArrayEqual(array, val){
    return array.some((arrVal) => {
        return arrVal == val;
    })
}

/**
 * 按数字大小排序数组，小位于前面
 * @param key 数组对象key 可不传
 * @param bigSize 是否按大的排序，默认按小的排序
 */
function sortArrNumber({arr = [], key = '', bigSize = false}){
    if(bigSize){
        arr.sort((item1, item2) => {
            if(key) return item2[key] - item1[key]
            return item2 - item1
        })
    }else{
        arr.sort((item1, item2) => {
            if(key) return item1[key] - item2[key]
            return item1 - item2
        })
    }
}

// 返回数组的对象中符合对象key值的对象
function returnArrObjSureKey({arr, key, val}){
    if(Array.isArray(arr) && key && val){
        for (const item of arr) {
            if(item[key] == val) return item
            break
        }
    }
    return ''
}

// 数组的对象中，参数key等于对象key时，返回对象key值
export function returnArrObjKeyVal({arr, key}){
    if(Array.isArray(arr) && key){
        for (const item of arr) {
            if(key in arr) return arr[key]
            break
        }
    }
    return ''
}

//返回数组是否包含某值
function checkArrayInclude(array, key, val) {
    if (key) {
        return array.some(arrVal => arrVal[key] == val);
    }
    return array.some(arrVal => val == arrVal);
}

// 返回等于数组内容的对象（包含数组位置和数组对象值），否则返回0
export function checkArrIndexObj({arr, key, val}) {
    if (Array.isArray(arr) && arr.length > 0 && key && val) {
        for (let i = 0; i < arr.length; i++) {
            if (arr[i][key] == val) {
                return {
                    ...arr[i],
                    index: i
                }
                break
            }
        }
    }
    return 0
}

// 判断两个数组是否相同
export const arrIsSame = (arr1, arr2) => {
    if (Array.isArray(arr1) && Array.isArray(arr2)) {
        return arr1.every((item, index) => {
            return item == arr2[index]
        })
    }
    return false
}

export { arrayHadArrayVal, checkArrayEqual, sortArrNumber, returnArrObjSureKey, checkArrayInclude }